
import java.util.ArrayList;


public class ArrayStack implements Stack {

	ArrayList items;


	public ArrayStack() {
		items = new ArrayList();
	}


	public ArrayStack( int capacity ) {
		items = new ArrayList(capacity);
	}


	public void push( Object x ) {
		items.add( x ); 
	}


	public Object top() {
		if ( isEmpty() ) {
			throw new IllegalStateException();
		}
		return items.get(items.size() - 1);
	}


	public Object pop() {
		if ( isEmpty() ) {
			throw new IllegalStateException();
		}
		return items.remove(items.size() - 1);
	}


	public boolean isEmpty() {
		return items.isEmpty();
	}


	public void clear() {
		items.clear();
	}

}
